//
//  NSString+Encryption.m
//  KKCategory
//
//  Created by liaozhenming on 16/5/17.
//  Copyright © 2016年 liaozhenming. All rights reserved.
//

#import "NSString+Encryption.h"

@implementation NSString (Encryption)

- (NSString*)kk_md5String {
    
    if (self.length == 0) {
        return nil;
    }
    
    const char *cStr = [self UTF8String];
    unsigned char result[16];
    CC_MD5(cStr, (int)strlen(cStr), result); // This is the md5 call
    return [NSString stringWithFormat:
            @"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
            result[0], result[1], result[2], result[3],
            result[4], result[5], result[6], result[7],
            result[8], result[9], result[10], result[11],
            result[12], result[13], result[14], result[15]
            ];
}

- (NSData*)kk_base64Encoded {
    
    if (self.length == 0) {
        return nil;
    }
    NSData *originData = [self dataUsingEncoding: NSASCIIStringEncoding];
    return [originData base64EncodedDataWithOptions: NSDataBase64EncodingEndLineWithLineFeed];
}

+ (instancetype)kk_base64EncodedWithData:(NSData*)base64Data {
    if (base64Data.length == 0) {
        return nil;
    }
    NSData *originData = [base64Data base64EncodedDataWithOptions: NSDataBase64EncodingEndLineWithLineFeed];
    return [[NSString alloc] initWithData: originData encoding: NSASCIIStringEncoding];
}

@end
